#pragma once
#include <spdlog/spdlog.h>

class LoggerSingleton
{
public:
	static LoggerSingleton& getInstance();
	std::shared_ptr<spdlog::logger> getLogger();
	void debug(std::string msg);
	void info(std::string msg);
	void warn(std::string msg);
	void error(std::string msg);
	void critical(std::string msg);
	LoggerSingleton(LoggerSingleton&) = delete;
	LoggerSingleton(LoggerSingleton&&) = delete;
	LoggerSingleton& operator=(const LoggerSingleton&) = delete;
	LoggerSingleton& operator=(LoggerSingleton&&) = delete;
private:
	LoggerSingleton();
	std::shared_ptr<spdlog::logger> logger_;
};